(0) Obligation:

Clauses:

nat(0).
nat(s(X)) :- nat(X).
plus(0, X, X) :- nat(X).
plus(s(X), Y, s(Z)) :- plus(X, Y, Z).
ways(0, X1, s(0)).
ways(X2, [], 0).
ways(Amount, .(s(C), Coins), N) :- ','(=(Amount, s(X3)), ','(plus(s(C), NewAmount, Amount), ','(ways(Amount, Coins, N1), ','(ways(NewAmount, .(s(C), Coins), N2), plus(N1, N2, N))))).
ways(Amount, .(s(C), Coins), N) :- ','(=(Amount, s(X4)), ','(plus(Amount, s(X5), s(C)), ways(Amount, Coins, N))).

Query: ways(g,g,a)

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph DT10.

(2) Obligation:

Triples:

natA(s(X1)) :- natA(X1).
plusB(0, X1, X1) :- natA(X1).
plusB(s(X1), X2, s(X3)) :- plusB(X1, X2, X3).
plusD(0, X1, X1) :- natA(X1).
plusD(s(X1), X2, s(X3)) :- plusD(X1, X2, X3).
plusF(0, X1, s(X1)) :- natA(s(X1)).
plusF(s(X1), X2, s(X3)) :- plusF(X1, X2, X3).
waysC(s(X1), .(s(X2), X3), X4) :- plusB(X2, X5, X1).
waysC(s(X1), .(s(X2), X3), X4) :- ','(pluscB(X2, X5, X1), waysC(s(X1), X3, X6)).
waysC(s(X1), .(s(X2), X3), X4) :- ','(pluscB(X2, X5, X1), ','(wayscC(s(X1), X3, X6), waysC(X5, .(s(X2), X3), X7))).
waysC(s(X1), .(s(X2), X3), X4) :- ','(pluscB(X2, X5, X1), ','(wayscC(s(X1), X3, X6), ','(wayscC(X5, .(s(X2), X3), X7), plusD(X6, X7, X4)))).
waysC(s(X1), .(s(X2), X3), X4) :- plusF(X1, X5, X2).
waysC(s(X1), .(s(X2), X3), X4) :- ','(pluscE(X1, X5, X2), waysC(s(X1), X3, X4)).

Clauses:

natcA(0).
natcA(s(X1)) :- natcA(X1).
pluscB(0, X1, X1) :- natcA(X1).
pluscB(s(X1), X2, s(X3)) :- pluscB(X1, X2, X3).
wayscC(0, X1, s(0)).
wayscC(0, [], 0).
wayscC(X1, [], 0).
wayscC(s(X1), .(s(X2), X3), X4) :- ','(pluscB(X2, X5, X1), ','(wayscC(s(X1), X3, X6), ','(wayscC(X5, .(s(X2), X3), X7), pluscD(X6, X7, X4)))).
wayscC(s(X1), .(s(X2), X3), X4) :- ','(pluscE(X1, X5, X2), wayscC(s(X1), X3, X4)).
pluscD(0, X1, X1) :- natcA(X1).
pluscD(s(X1), X2, s(X3)) :- pluscD(X1, X2, X3).
pluscF(0, X1, s(X1)) :- natcA(s(X1)).
pluscF(s(X1), X2, s(X3)) :- pluscF(X1, X2, X3).
pluscE(X1, X2, X3) :- pluscF(X1, X2, X3).

Afs:

waysC(x1, x2, x3)  =  waysC(x1, x2)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:
waysC_in: (b,b,f)
plusB_in: (b,f,b)
natA_in: (b)
pluscB_in: (b,f,b)
natcA_in: (b)
plusF_in: (b,f,b)
pluscE_in: (b,f,b)
pluscF_in: (b,f,b)
wayscC_in: (b,b,f)
pluscD_in: (b,b,f)
plusD_in: (b,b,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U8_GGA(X1, X2, X3, X4, plusB_in_gag(X2, X5, X1))
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → PLUSB_IN_GAG(X2, X5, X1)
PLUSB_IN_GAG(0, X1, X1) → U2_GAG(X1, natA_in_g(X1))
PLUSB_IN_GAG(0, X1, X1) → NATA_IN_G(X1)
NATA_IN_G(s(X1)) → U1_G(X1, natA_in_g(X1))
NATA_IN_G(s(X1)) → NATA_IN_G(X1)
PLUSB_IN_GAG(s(X1), X2, s(X3)) → U3_GAG(X1, X2, X3, plusB_in_gag(X1, X2, X3))
PLUSB_IN_GAG(s(X1), X2, s(X3)) → PLUSB_IN_GAG(X1, X2, X3)
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U9_GGA(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U9_GGA(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U10_GGA(X1, X2, X3, X4, waysC_in_gga(s(X1), X3, X6))
U9_GGA(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → WAYSC_IN_GGA(s(X1), X3, X6)
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U15_GGA(X1, X2, X3, X4, plusF_in_gag(X1, X5, X2))
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → PLUSF_IN_GAG(X1, X5, X2)
PLUSF_IN_GAG(0, X1, s(X1)) → U6_GAG(X1, natA_in_g(s(X1)))
PLUSF_IN_GAG(0, X1, s(X1)) → NATA_IN_G(s(X1))
PLUSF_IN_GAG(s(X1), X2, s(X3)) → U7_GAG(X1, X2, X3, plusF_in_gag(X1, X2, X3))
PLUSF_IN_GAG(s(X1), X2, s(X3)) → PLUSF_IN_GAG(X1, X2, X3)
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U16_GGA(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U16_GGA(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → U17_GGA(X1, X2, X3, X4, waysC_in_gga(s(X1), X3, X4))
U16_GGA(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → WAYSC_IN_GGA(s(X1), X3, X4)
U9_GGA(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U11_GGA(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
U11_GGA(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U12_GGA(X1, X2, X3, X4, waysC_in_gga(X5, .(s(X2), X3), X7))
U11_GGA(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → WAYSC_IN_GGA(X5, .(s(X2), X3), X7)
U11_GGA(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U13_GGA(X1, X2, X3, X4, X6, wayscC_in_gga(X5, .(s(X2), X3), X7))
U13_GGA(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U14_GGA(X1, X2, X3, X4, plusD_in_gga(X6, X7, X4))
U13_GGA(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → PLUSD_IN_GGA(X6, X7, X4)
PLUSD_IN_GGA(0, X1, X1) → U4_GGA(X1, natA_in_g(X1))
PLUSD_IN_GGA(0, X1, X1) → NATA_IN_G(X1)
PLUSD_IN_GGA(s(X1), X2, s(X3)) → U5_GGA(X1, X2, X3, plusD_in_gga(X1, X2, X3))
PLUSD_IN_GGA(s(X1), X2, s(X3)) → PLUSD_IN_GGA(X1, X2, X3)

The TRS R consists of the following rules:

pluscB_in_gag(0, X1, X1) → U20_gag(X1, natcA_in_g(X1))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
pluscB_in_gag(s(X1), X2, s(X3)) → U21_gag(X1, X2, X3, pluscB_in_gag(X1, X2, X3))
U21_gag(X1, X2, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
pluscE_in_gag(X1, X2, X3) → U32_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
pluscF_in_gag(0, X1, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
pluscF_in_gag(s(X1), X2, s(X3)) → U31_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
U31_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
wayscC_in_gga(0, X1, s(0)) → wayscC_out_gga(0, X1, s(0))
wayscC_in_gga(0, [], 0) → wayscC_out_gga(0, [], 0)
wayscC_in_gga(X1, [], 0) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U22_gga(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U22_gga(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U26_gga(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U26_gga(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, X4, wayscC_in_gga(s(X1), X3, X4))
U27_gga(X1, X2, X3, X4, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U23_gga(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X4, X6, wayscC_in_gga(X5, .(s(X2), X3), X7))
U24_gga(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, X4, pluscD_in_gga(X6, X7, X4))
pluscD_in_gga(0, X1, X1) → U28_gga(X1, natcA_in_g(X1))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U29_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U29_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U25_gga(X1, X2, X3, X4, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)

The argument filtering Pi contains the following mapping:
waysC_in_gga(x1, x2, x3)  =  waysC_in_gga(x1, x2)
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
plusB_in_gag(x1, x2, x3)  =  plusB_in_gag(x1, x3)
0  =  0
natA_in_g(x1)  =  natA_in_g(x1)
pluscB_in_gag(x1, x2, x3)  =  pluscB_in_gag(x1, x3)
U20_gag(x1, x2)  =  U20_gag(x1, x2)
natcA_in_g(x1)  =  natcA_in_g(x1)
natcA_out_g(x1)  =  natcA_out_g(x1)
U19_g(x1, x2)  =  U19_g(x1, x2)
pluscB_out_gag(x1, x2, x3)  =  pluscB_out_gag(x1, x2, x3)
U21_gag(x1, x2, x3, x4)  =  U21_gag(x1, x3, x4)
plusF_in_gag(x1, x2, x3)  =  plusF_in_gag(x1, x3)
pluscE_in_gag(x1, x2, x3)  =  pluscE_in_gag(x1, x3)
U32_gag(x1, x2, x3, x4)  =  U32_gag(x1, x3, x4)
pluscF_in_gag(x1, x2, x3)  =  pluscF_in_gag(x1, x3)
U30_gag(x1, x2)  =  U30_gag(x1, x2)
pluscF_out_gag(x1, x2, x3)  =  pluscF_out_gag(x1, x2, x3)
U31_gag(x1, x2, x3, x4)  =  U31_gag(x1, x3, x4)
pluscE_out_gag(x1, x2, x3)  =  pluscE_out_gag(x1, x2, x3)
wayscC_in_gga(x1, x2, x3)  =  wayscC_in_gga(x1, x2)
wayscC_out_gga(x1, x2, x3)  =  wayscC_out_gga(x1, x2, x3)
[]  =  []
U22_gga(x1, x2, x3, x4, x5)  =  U22_gga(x1, x2, x3, x5)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U25_gga(x1, x2, x3, x4, x5)  =  U25_gga(x1, x2, x3, x5)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
U28_gga(x1, x2)  =  U28_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U29_gga(x1, x2, x3, x4)  =  U29_gga(x1, x2, x4)
plusD_in_gga(x1, x2, x3)  =  plusD_in_gga(x1, x2)
WAYSC_IN_GGA(x1, x2, x3)  =  WAYSC_IN_GGA(x1, x2)
U8_GGA(x1, x2, x3, x4, x5)  =  U8_GGA(x1, x2, x3, x5)
PLUSB_IN_GAG(x1, x2, x3)  =  PLUSB_IN_GAG(x1, x3)
U2_GAG(x1, x2)  =  U2_GAG(x1, x2)
NATA_IN_G(x1)  =  NATA_IN_G(x1)
U1_G(x1, x2)  =  U1_G(x1, x2)
U3_GAG(x1, x2, x3, x4)  =  U3_GAG(x1, x3, x4)
U9_GGA(x1, x2, x3, x4, x5)  =  U9_GGA(x1, x2, x3, x5)
U10_GGA(x1, x2, x3, x4, x5)  =  U10_GGA(x1, x2, x3, x5)
U15_GGA(x1, x2, x3, x4, x5)  =  U15_GGA(x1, x2, x3, x5)
PLUSF_IN_GAG(x1, x2, x3)  =  PLUSF_IN_GAG(x1, x3)
U6_GAG(x1, x2)  =  U6_GAG(x1, x2)
U7_GAG(x1, x2, x3, x4)  =  U7_GAG(x1, x3, x4)
U16_GGA(x1, x2, x3, x4, x5)  =  U16_GGA(x1, x2, x3, x5)
U17_GGA(x1, x2, x3, x4, x5)  =  U17_GGA(x1, x2, x3, x5)
U11_GGA(x1, x2, x3, x4, x5, x6)  =  U11_GGA(x1, x2, x3, x5, x6)
U12_GGA(x1, x2, x3, x4, x5)  =  U12_GGA(x1, x2, x3, x5)
U13_GGA(x1, x2, x3, x4, x5, x6)  =  U13_GGA(x1, x2, x3, x5, x6)
U14_GGA(x1, x2, x3, x4, x5)  =  U14_GGA(x1, x2, x3, x5)
PLUSD_IN_GGA(x1, x2, x3)  =  PLUSD_IN_GGA(x1, x2)
U4_GGA(x1, x2)  =  U4_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)

We have to consider all (P,R,Pi)-chains

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U8_GGA(X1, X2, X3, X4, plusB_in_gag(X2, X5, X1))
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → PLUSB_IN_GAG(X2, X5, X1)
PLUSB_IN_GAG(0, X1, X1) → U2_GAG(X1, natA_in_g(X1))
PLUSB_IN_GAG(0, X1, X1) → NATA_IN_G(X1)
NATA_IN_G(s(X1)) → U1_G(X1, natA_in_g(X1))
NATA_IN_G(s(X1)) → NATA_IN_G(X1)
PLUSB_IN_GAG(s(X1), X2, s(X3)) → U3_GAG(X1, X2, X3, plusB_in_gag(X1, X2, X3))
PLUSB_IN_GAG(s(X1), X2, s(X3)) → PLUSB_IN_GAG(X1, X2, X3)
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U9_GGA(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U9_GGA(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U10_GGA(X1, X2, X3, X4, waysC_in_gga(s(X1), X3, X6))
U9_GGA(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → WAYSC_IN_GGA(s(X1), X3, X6)
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U15_GGA(X1, X2, X3, X4, plusF_in_gag(X1, X5, X2))
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → PLUSF_IN_GAG(X1, X5, X2)
PLUSF_IN_GAG(0, X1, s(X1)) → U6_GAG(X1, natA_in_g(s(X1)))
PLUSF_IN_GAG(0, X1, s(X1)) → NATA_IN_G(s(X1))
PLUSF_IN_GAG(s(X1), X2, s(X3)) → U7_GAG(X1, X2, X3, plusF_in_gag(X1, X2, X3))
PLUSF_IN_GAG(s(X1), X2, s(X3)) → PLUSF_IN_GAG(X1, X2, X3)
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U16_GGA(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U16_GGA(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → U17_GGA(X1, X2, X3, X4, waysC_in_gga(s(X1), X3, X4))
U16_GGA(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → WAYSC_IN_GGA(s(X1), X3, X4)
U9_GGA(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U11_GGA(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
U11_GGA(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U12_GGA(X1, X2, X3, X4, waysC_in_gga(X5, .(s(X2), X3), X7))
U11_GGA(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → WAYSC_IN_GGA(X5, .(s(X2), X3), X7)
U11_GGA(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U13_GGA(X1, X2, X3, X4, X6, wayscC_in_gga(X5, .(s(X2), X3), X7))
U13_GGA(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U14_GGA(X1, X2, X3, X4, plusD_in_gga(X6, X7, X4))
U13_GGA(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → PLUSD_IN_GGA(X6, X7, X4)
PLUSD_IN_GGA(0, X1, X1) → U4_GGA(X1, natA_in_g(X1))
PLUSD_IN_GGA(0, X1, X1) → NATA_IN_G(X1)
PLUSD_IN_GGA(s(X1), X2, s(X3)) → U5_GGA(X1, X2, X3, plusD_in_gga(X1, X2, X3))
PLUSD_IN_GGA(s(X1), X2, s(X3)) → PLUSD_IN_GGA(X1, X2, X3)

The TRS R consists of the following rules:

pluscB_in_gag(0, X1, X1) → U20_gag(X1, natcA_in_g(X1))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
pluscB_in_gag(s(X1), X2, s(X3)) → U21_gag(X1, X2, X3, pluscB_in_gag(X1, X2, X3))
U21_gag(X1, X2, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
pluscE_in_gag(X1, X2, X3) → U32_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
pluscF_in_gag(0, X1, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
pluscF_in_gag(s(X1), X2, s(X3)) → U31_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
U31_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
wayscC_in_gga(0, X1, s(0)) → wayscC_out_gga(0, X1, s(0))
wayscC_in_gga(0, [], 0) → wayscC_out_gga(0, [], 0)
wayscC_in_gga(X1, [], 0) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U22_gga(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U22_gga(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U26_gga(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U26_gga(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, X4, wayscC_in_gga(s(X1), X3, X4))
U27_gga(X1, X2, X3, X4, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U23_gga(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X4, X6, wayscC_in_gga(X5, .(s(X2), X3), X7))
U24_gga(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, X4, pluscD_in_gga(X6, X7, X4))
pluscD_in_gga(0, X1, X1) → U28_gga(X1, natcA_in_g(X1))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U29_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U29_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U25_gga(X1, X2, X3, X4, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)

The argument filtering Pi contains the following mapping:
waysC_in_gga(x1, x2, x3)  =  waysC_in_gga(x1, x2)
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
plusB_in_gag(x1, x2, x3)  =  plusB_in_gag(x1, x3)
0  =  0
natA_in_g(x1)  =  natA_in_g(x1)
pluscB_in_gag(x1, x2, x3)  =  pluscB_in_gag(x1, x3)
U20_gag(x1, x2)  =  U20_gag(x1, x2)
natcA_in_g(x1)  =  natcA_in_g(x1)
natcA_out_g(x1)  =  natcA_out_g(x1)
U19_g(x1, x2)  =  U19_g(x1, x2)
pluscB_out_gag(x1, x2, x3)  =  pluscB_out_gag(x1, x2, x3)
U21_gag(x1, x2, x3, x4)  =  U21_gag(x1, x3, x4)
plusF_in_gag(x1, x2, x3)  =  plusF_in_gag(x1, x3)
pluscE_in_gag(x1, x2, x3)  =  pluscE_in_gag(x1, x3)
U32_gag(x1, x2, x3, x4)  =  U32_gag(x1, x3, x4)
pluscF_in_gag(x1, x2, x3)  =  pluscF_in_gag(x1, x3)
U30_gag(x1, x2)  =  U30_gag(x1, x2)
pluscF_out_gag(x1, x2, x3)  =  pluscF_out_gag(x1, x2, x3)
U31_gag(x1, x2, x3, x4)  =  U31_gag(x1, x3, x4)
pluscE_out_gag(x1, x2, x3)  =  pluscE_out_gag(x1, x2, x3)
wayscC_in_gga(x1, x2, x3)  =  wayscC_in_gga(x1, x2)
wayscC_out_gga(x1, x2, x3)  =  wayscC_out_gga(x1, x2, x3)
[]  =  []
U22_gga(x1, x2, x3, x4, x5)  =  U22_gga(x1, x2, x3, x5)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U25_gga(x1, x2, x3, x4, x5)  =  U25_gga(x1, x2, x3, x5)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
U28_gga(x1, x2)  =  U28_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U29_gga(x1, x2, x3, x4)  =  U29_gga(x1, x2, x4)
plusD_in_gga(x1, x2, x3)  =  plusD_in_gga(x1, x2)
WAYSC_IN_GGA(x1, x2, x3)  =  WAYSC_IN_GGA(x1, x2)
U8_GGA(x1, x2, x3, x4, x5)  =  U8_GGA(x1, x2, x3, x5)
PLUSB_IN_GAG(x1, x2, x3)  =  PLUSB_IN_GAG(x1, x3)
U2_GAG(x1, x2)  =  U2_GAG(x1, x2)
NATA_IN_G(x1)  =  NATA_IN_G(x1)
U1_G(x1, x2)  =  U1_G(x1, x2)
U3_GAG(x1, x2, x3, x4)  =  U3_GAG(x1, x3, x4)
U9_GGA(x1, x2, x3, x4, x5)  =  U9_GGA(x1, x2, x3, x5)
U10_GGA(x1, x2, x3, x4, x5)  =  U10_GGA(x1, x2, x3, x5)
U15_GGA(x1, x2, x3, x4, x5)  =  U15_GGA(x1, x2, x3, x5)
PLUSF_IN_GAG(x1, x2, x3)  =  PLUSF_IN_GAG(x1, x3)
U6_GAG(x1, x2)  =  U6_GAG(x1, x2)
U7_GAG(x1, x2, x3, x4)  =  U7_GAG(x1, x3, x4)
U16_GGA(x1, x2, x3, x4, x5)  =  U16_GGA(x1, x2, x3, x5)
U17_GGA(x1, x2, x3, x4, x5)  =  U17_GGA(x1, x2, x3, x5)
U11_GGA(x1, x2, x3, x4, x5, x6)  =  U11_GGA(x1, x2, x3, x5, x6)
U12_GGA(x1, x2, x3, x4, x5)  =  U12_GGA(x1, x2, x3, x5)
U13_GGA(x1, x2, x3, x4, x5, x6)  =  U13_GGA(x1, x2, x3, x5, x6)
U14_GGA(x1, x2, x3, x4, x5)  =  U14_GGA(x1, x2, x3, x5)
PLUSD_IN_GGA(x1, x2, x3)  =  PLUSD_IN_GGA(x1, x2)
U4_GGA(x1, x2)  =  U4_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)

We have to consider all (P,R,Pi)-chains

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 20 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

NATA_IN_G(s(X1)) → NATA_IN_G(X1)

The TRS R consists of the following rules:

pluscB_in_gag(0, X1, X1) → U20_gag(X1, natcA_in_g(X1))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
pluscB_in_gag(s(X1), X2, s(X3)) → U21_gag(X1, X2, X3, pluscB_in_gag(X1, X2, X3))
U21_gag(X1, X2, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
pluscE_in_gag(X1, X2, X3) → U32_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
pluscF_in_gag(0, X1, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
pluscF_in_gag(s(X1), X2, s(X3)) → U31_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
U31_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
wayscC_in_gga(0, X1, s(0)) → wayscC_out_gga(0, X1, s(0))
wayscC_in_gga(0, [], 0) → wayscC_out_gga(0, [], 0)
wayscC_in_gga(X1, [], 0) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U22_gga(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U22_gga(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U26_gga(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U26_gga(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, X4, wayscC_in_gga(s(X1), X3, X4))
U27_gga(X1, X2, X3, X4, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U23_gga(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X4, X6, wayscC_in_gga(X5, .(s(X2), X3), X7))
U24_gga(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, X4, pluscD_in_gga(X6, X7, X4))
pluscD_in_gga(0, X1, X1) → U28_gga(X1, natcA_in_g(X1))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U29_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U29_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U25_gga(X1, X2, X3, X4, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
pluscB_in_gag(x1, x2, x3)  =  pluscB_in_gag(x1, x3)
U20_gag(x1, x2)  =  U20_gag(x1, x2)
natcA_in_g(x1)  =  natcA_in_g(x1)
natcA_out_g(x1)  =  natcA_out_g(x1)
U19_g(x1, x2)  =  U19_g(x1, x2)
pluscB_out_gag(x1, x2, x3)  =  pluscB_out_gag(x1, x2, x3)
U21_gag(x1, x2, x3, x4)  =  U21_gag(x1, x3, x4)
pluscE_in_gag(x1, x2, x3)  =  pluscE_in_gag(x1, x3)
U32_gag(x1, x2, x3, x4)  =  U32_gag(x1, x3, x4)
pluscF_in_gag(x1, x2, x3)  =  pluscF_in_gag(x1, x3)
U30_gag(x1, x2)  =  U30_gag(x1, x2)
pluscF_out_gag(x1, x2, x3)  =  pluscF_out_gag(x1, x2, x3)
U31_gag(x1, x2, x3, x4)  =  U31_gag(x1, x3, x4)
pluscE_out_gag(x1, x2, x3)  =  pluscE_out_gag(x1, x2, x3)
wayscC_in_gga(x1, x2, x3)  =  wayscC_in_gga(x1, x2)
wayscC_out_gga(x1, x2, x3)  =  wayscC_out_gga(x1, x2, x3)
[]  =  []
U22_gga(x1, x2, x3, x4, x5)  =  U22_gga(x1, x2, x3, x5)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U25_gga(x1, x2, x3, x4, x5)  =  U25_gga(x1, x2, x3, x5)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
U28_gga(x1, x2)  =  U28_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U29_gga(x1, x2, x3, x4)  =  U29_gga(x1, x2, x4)
NATA_IN_G(x1)  =  NATA_IN_G(x1)

We have to consider all (P,R,Pi)-chains

(8) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

NATA_IN_G(s(X1)) → NATA_IN_G(X1)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains

(10) PiDPToQDPProof (EQUIVALENT transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

NATA_IN_G(s(X1)) → NATA_IN_G(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • NATA_IN_G(s(X1)) → NATA_IN_G(X1)
    The graph contains the following edges 1 > 1

(13) YES

(14) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PLUSD_IN_GGA(s(X1), X2, s(X3)) → PLUSD_IN_GGA(X1, X2, X3)

The TRS R consists of the following rules:

pluscB_in_gag(0, X1, X1) → U20_gag(X1, natcA_in_g(X1))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
pluscB_in_gag(s(X1), X2, s(X3)) → U21_gag(X1, X2, X3, pluscB_in_gag(X1, X2, X3))
U21_gag(X1, X2, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
pluscE_in_gag(X1, X2, X3) → U32_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
pluscF_in_gag(0, X1, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
pluscF_in_gag(s(X1), X2, s(X3)) → U31_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
U31_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
wayscC_in_gga(0, X1, s(0)) → wayscC_out_gga(0, X1, s(0))
wayscC_in_gga(0, [], 0) → wayscC_out_gga(0, [], 0)
wayscC_in_gga(X1, [], 0) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U22_gga(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U22_gga(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U26_gga(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U26_gga(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, X4, wayscC_in_gga(s(X1), X3, X4))
U27_gga(X1, X2, X3, X4, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U23_gga(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X4, X6, wayscC_in_gga(X5, .(s(X2), X3), X7))
U24_gga(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, X4, pluscD_in_gga(X6, X7, X4))
pluscD_in_gga(0, X1, X1) → U28_gga(X1, natcA_in_g(X1))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U29_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U29_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U25_gga(X1, X2, X3, X4, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
pluscB_in_gag(x1, x2, x3)  =  pluscB_in_gag(x1, x3)
U20_gag(x1, x2)  =  U20_gag(x1, x2)
natcA_in_g(x1)  =  natcA_in_g(x1)
natcA_out_g(x1)  =  natcA_out_g(x1)
U19_g(x1, x2)  =  U19_g(x1, x2)
pluscB_out_gag(x1, x2, x3)  =  pluscB_out_gag(x1, x2, x3)
U21_gag(x1, x2, x3, x4)  =  U21_gag(x1, x3, x4)
pluscE_in_gag(x1, x2, x3)  =  pluscE_in_gag(x1, x3)
U32_gag(x1, x2, x3, x4)  =  U32_gag(x1, x3, x4)
pluscF_in_gag(x1, x2, x3)  =  pluscF_in_gag(x1, x3)
U30_gag(x1, x2)  =  U30_gag(x1, x2)
pluscF_out_gag(x1, x2, x3)  =  pluscF_out_gag(x1, x2, x3)
U31_gag(x1, x2, x3, x4)  =  U31_gag(x1, x3, x4)
pluscE_out_gag(x1, x2, x3)  =  pluscE_out_gag(x1, x2, x3)
wayscC_in_gga(x1, x2, x3)  =  wayscC_in_gga(x1, x2)
wayscC_out_gga(x1, x2, x3)  =  wayscC_out_gga(x1, x2, x3)
[]  =  []
U22_gga(x1, x2, x3, x4, x5)  =  U22_gga(x1, x2, x3, x5)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U25_gga(x1, x2, x3, x4, x5)  =  U25_gga(x1, x2, x3, x5)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
U28_gga(x1, x2)  =  U28_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U29_gga(x1, x2, x3, x4)  =  U29_gga(x1, x2, x4)
PLUSD_IN_GGA(x1, x2, x3)  =  PLUSD_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(15) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PLUSD_IN_GGA(s(X1), X2, s(X3)) → PLUSD_IN_GGA(X1, X2, X3)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
PLUSD_IN_GGA(x1, x2, x3)  =  PLUSD_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(17) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PLUSD_IN_GGA(s(X1), X2) → PLUSD_IN_GGA(X1, X2)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(19) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • PLUSD_IN_GGA(s(X1), X2) → PLUSD_IN_GGA(X1, X2)
    The graph contains the following edges 1 > 1, 2 >= 2

(20) YES

(21) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PLUSF_IN_GAG(s(X1), X2, s(X3)) → PLUSF_IN_GAG(X1, X2, X3)

The TRS R consists of the following rules:

pluscB_in_gag(0, X1, X1) → U20_gag(X1, natcA_in_g(X1))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
pluscB_in_gag(s(X1), X2, s(X3)) → U21_gag(X1, X2, X3, pluscB_in_gag(X1, X2, X3))
U21_gag(X1, X2, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
pluscE_in_gag(X1, X2, X3) → U32_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
pluscF_in_gag(0, X1, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
pluscF_in_gag(s(X1), X2, s(X3)) → U31_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
U31_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
wayscC_in_gga(0, X1, s(0)) → wayscC_out_gga(0, X1, s(0))
wayscC_in_gga(0, [], 0) → wayscC_out_gga(0, [], 0)
wayscC_in_gga(X1, [], 0) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U22_gga(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U22_gga(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U26_gga(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U26_gga(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, X4, wayscC_in_gga(s(X1), X3, X4))
U27_gga(X1, X2, X3, X4, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U23_gga(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X4, X6, wayscC_in_gga(X5, .(s(X2), X3), X7))
U24_gga(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, X4, pluscD_in_gga(X6, X7, X4))
pluscD_in_gga(0, X1, X1) → U28_gga(X1, natcA_in_g(X1))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U29_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U29_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U25_gga(X1, X2, X3, X4, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
pluscB_in_gag(x1, x2, x3)  =  pluscB_in_gag(x1, x3)
U20_gag(x1, x2)  =  U20_gag(x1, x2)
natcA_in_g(x1)  =  natcA_in_g(x1)
natcA_out_g(x1)  =  natcA_out_g(x1)
U19_g(x1, x2)  =  U19_g(x1, x2)
pluscB_out_gag(x1, x2, x3)  =  pluscB_out_gag(x1, x2, x3)
U21_gag(x1, x2, x3, x4)  =  U21_gag(x1, x3, x4)
pluscE_in_gag(x1, x2, x3)  =  pluscE_in_gag(x1, x3)
U32_gag(x1, x2, x3, x4)  =  U32_gag(x1, x3, x4)
pluscF_in_gag(x1, x2, x3)  =  pluscF_in_gag(x1, x3)
U30_gag(x1, x2)  =  U30_gag(x1, x2)
pluscF_out_gag(x1, x2, x3)  =  pluscF_out_gag(x1, x2, x3)
U31_gag(x1, x2, x3, x4)  =  U31_gag(x1, x3, x4)
pluscE_out_gag(x1, x2, x3)  =  pluscE_out_gag(x1, x2, x3)
wayscC_in_gga(x1, x2, x3)  =  wayscC_in_gga(x1, x2)
wayscC_out_gga(x1, x2, x3)  =  wayscC_out_gga(x1, x2, x3)
[]  =  []
U22_gga(x1, x2, x3, x4, x5)  =  U22_gga(x1, x2, x3, x5)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U25_gga(x1, x2, x3, x4, x5)  =  U25_gga(x1, x2, x3, x5)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
U28_gga(x1, x2)  =  U28_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U29_gga(x1, x2, x3, x4)  =  U29_gga(x1, x2, x4)
PLUSF_IN_GAG(x1, x2, x3)  =  PLUSF_IN_GAG(x1, x3)

We have to consider all (P,R,Pi)-chains

(22) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(23) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PLUSF_IN_GAG(s(X1), X2, s(X3)) → PLUSF_IN_GAG(X1, X2, X3)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
PLUSF_IN_GAG(x1, x2, x3)  =  PLUSF_IN_GAG(x1, x3)

We have to consider all (P,R,Pi)-chains

(24) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(25) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PLUSF_IN_GAG(s(X1), s(X3)) → PLUSF_IN_GAG(X1, X3)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(26) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • PLUSF_IN_GAG(s(X1), s(X3)) → PLUSF_IN_GAG(X1, X3)
    The graph contains the following edges 1 > 1, 2 > 2

(27) YES

(28) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PLUSB_IN_GAG(s(X1), X2, s(X3)) → PLUSB_IN_GAG(X1, X2, X3)

The TRS R consists of the following rules:

pluscB_in_gag(0, X1, X1) → U20_gag(X1, natcA_in_g(X1))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
pluscB_in_gag(s(X1), X2, s(X3)) → U21_gag(X1, X2, X3, pluscB_in_gag(X1, X2, X3))
U21_gag(X1, X2, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
pluscE_in_gag(X1, X2, X3) → U32_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
pluscF_in_gag(0, X1, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
pluscF_in_gag(s(X1), X2, s(X3)) → U31_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
U31_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
wayscC_in_gga(0, X1, s(0)) → wayscC_out_gga(0, X1, s(0))
wayscC_in_gga(0, [], 0) → wayscC_out_gga(0, [], 0)
wayscC_in_gga(X1, [], 0) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U22_gga(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U22_gga(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U26_gga(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U26_gga(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, X4, wayscC_in_gga(s(X1), X3, X4))
U27_gga(X1, X2, X3, X4, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U23_gga(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X4, X6, wayscC_in_gga(X5, .(s(X2), X3), X7))
U24_gga(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, X4, pluscD_in_gga(X6, X7, X4))
pluscD_in_gga(0, X1, X1) → U28_gga(X1, natcA_in_g(X1))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U29_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U29_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U25_gga(X1, X2, X3, X4, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
pluscB_in_gag(x1, x2, x3)  =  pluscB_in_gag(x1, x3)
U20_gag(x1, x2)  =  U20_gag(x1, x2)
natcA_in_g(x1)  =  natcA_in_g(x1)
natcA_out_g(x1)  =  natcA_out_g(x1)
U19_g(x1, x2)  =  U19_g(x1, x2)
pluscB_out_gag(x1, x2, x3)  =  pluscB_out_gag(x1, x2, x3)
U21_gag(x1, x2, x3, x4)  =  U21_gag(x1, x3, x4)
pluscE_in_gag(x1, x2, x3)  =  pluscE_in_gag(x1, x3)
U32_gag(x1, x2, x3, x4)  =  U32_gag(x1, x3, x4)
pluscF_in_gag(x1, x2, x3)  =  pluscF_in_gag(x1, x3)
U30_gag(x1, x2)  =  U30_gag(x1, x2)
pluscF_out_gag(x1, x2, x3)  =  pluscF_out_gag(x1, x2, x3)
U31_gag(x1, x2, x3, x4)  =  U31_gag(x1, x3, x4)
pluscE_out_gag(x1, x2, x3)  =  pluscE_out_gag(x1, x2, x3)
wayscC_in_gga(x1, x2, x3)  =  wayscC_in_gga(x1, x2)
wayscC_out_gga(x1, x2, x3)  =  wayscC_out_gga(x1, x2, x3)
[]  =  []
U22_gga(x1, x2, x3, x4, x5)  =  U22_gga(x1, x2, x3, x5)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U25_gga(x1, x2, x3, x4, x5)  =  U25_gga(x1, x2, x3, x5)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
U28_gga(x1, x2)  =  U28_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U29_gga(x1, x2, x3, x4)  =  U29_gga(x1, x2, x4)
PLUSB_IN_GAG(x1, x2, x3)  =  PLUSB_IN_GAG(x1, x3)

We have to consider all (P,R,Pi)-chains

(29) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(30) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PLUSB_IN_GAG(s(X1), X2, s(X3)) → PLUSB_IN_GAG(X1, X2, X3)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
PLUSB_IN_GAG(x1, x2, x3)  =  PLUSB_IN_GAG(x1, x3)

We have to consider all (P,R,Pi)-chains

(31) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(32) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PLUSB_IN_GAG(s(X1), s(X3)) → PLUSB_IN_GAG(X1, X3)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(33) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • PLUSB_IN_GAG(s(X1), s(X3)) → PLUSB_IN_GAG(X1, X3)
    The graph contains the following edges 1 > 1, 2 > 2

(34) YES

(35) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U9_GGA(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U9_GGA(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → WAYSC_IN_GGA(s(X1), X3, X6)
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U16_GGA(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U16_GGA(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → WAYSC_IN_GGA(s(X1), X3, X4)
U9_GGA(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U11_GGA(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
U11_GGA(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → WAYSC_IN_GGA(X5, .(s(X2), X3), X7)

The TRS R consists of the following rules:

pluscB_in_gag(0, X1, X1) → U20_gag(X1, natcA_in_g(X1))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
pluscB_in_gag(s(X1), X2, s(X3)) → U21_gag(X1, X2, X3, pluscB_in_gag(X1, X2, X3))
U21_gag(X1, X2, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
pluscE_in_gag(X1, X2, X3) → U32_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
pluscF_in_gag(0, X1, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
pluscF_in_gag(s(X1), X2, s(X3)) → U31_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
U31_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
wayscC_in_gga(0, X1, s(0)) → wayscC_out_gga(0, X1, s(0))
wayscC_in_gga(0, [], 0) → wayscC_out_gga(0, [], 0)
wayscC_in_gga(X1, [], 0) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U22_gga(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U22_gga(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U26_gga(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U26_gga(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, X4, wayscC_in_gga(s(X1), X3, X4))
U27_gga(X1, X2, X3, X4, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U23_gga(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X4, X6, wayscC_in_gga(X5, .(s(X2), X3), X7))
U24_gga(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, X4, pluscD_in_gga(X6, X7, X4))
pluscD_in_gga(0, X1, X1) → U28_gga(X1, natcA_in_g(X1))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U29_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U29_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U25_gga(X1, X2, X3, X4, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
pluscB_in_gag(x1, x2, x3)  =  pluscB_in_gag(x1, x3)
U20_gag(x1, x2)  =  U20_gag(x1, x2)
natcA_in_g(x1)  =  natcA_in_g(x1)
natcA_out_g(x1)  =  natcA_out_g(x1)
U19_g(x1, x2)  =  U19_g(x1, x2)
pluscB_out_gag(x1, x2, x3)  =  pluscB_out_gag(x1, x2, x3)
U21_gag(x1, x2, x3, x4)  =  U21_gag(x1, x3, x4)
pluscE_in_gag(x1, x2, x3)  =  pluscE_in_gag(x1, x3)
U32_gag(x1, x2, x3, x4)  =  U32_gag(x1, x3, x4)
pluscF_in_gag(x1, x2, x3)  =  pluscF_in_gag(x1, x3)
U30_gag(x1, x2)  =  U30_gag(x1, x2)
pluscF_out_gag(x1, x2, x3)  =  pluscF_out_gag(x1, x2, x3)
U31_gag(x1, x2, x3, x4)  =  U31_gag(x1, x3, x4)
pluscE_out_gag(x1, x2, x3)  =  pluscE_out_gag(x1, x2, x3)
wayscC_in_gga(x1, x2, x3)  =  wayscC_in_gga(x1, x2)
wayscC_out_gga(x1, x2, x3)  =  wayscC_out_gga(x1, x2, x3)
[]  =  []
U22_gga(x1, x2, x3, x4, x5)  =  U22_gga(x1, x2, x3, x5)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U25_gga(x1, x2, x3, x4, x5)  =  U25_gga(x1, x2, x3, x5)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
U28_gga(x1, x2)  =  U28_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U29_gga(x1, x2, x3, x4)  =  U29_gga(x1, x2, x4)
WAYSC_IN_GGA(x1, x2, x3)  =  WAYSC_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3, x4, x5)  =  U9_GGA(x1, x2, x3, x5)
U16_GGA(x1, x2, x3, x4, x5)  =  U16_GGA(x1, x2, x3, x5)
U11_GGA(x1, x2, x3, x4, x5, x6)  =  U11_GGA(x1, x2, x3, x5, x6)

We have to consider all (P,R,Pi)-chains

(36) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(37) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U9_GGA(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
U9_GGA(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → WAYSC_IN_GGA(s(X1), X3, X6)
WAYSC_IN_GGA(s(X1), .(s(X2), X3), X4) → U16_GGA(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U16_GGA(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → WAYSC_IN_GGA(s(X1), X3, X4)
U9_GGA(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U11_GGA(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
U11_GGA(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → WAYSC_IN_GGA(X5, .(s(X2), X3), X7)

The TRS R consists of the following rules:

pluscB_in_gag(0, X1, X1) → U20_gag(X1, natcA_in_g(X1))
pluscB_in_gag(s(X1), X2, s(X3)) → U21_gag(X1, X2, X3, pluscB_in_gag(X1, X2, X3))
pluscE_in_gag(X1, X2, X3) → U32_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
wayscC_in_gga(X1, [], 0) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U22_gga(X1, X2, X3, X4, pluscB_in_gag(X2, X5, X1))
wayscC_in_gga(s(X1), .(s(X2), X3), X4) → U26_gga(X1, X2, X3, X4, pluscE_in_gag(X1, X5, X2))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
U21_gag(X1, X2, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
U22_gga(X1, X2, X3, X4, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X4, X5, wayscC_in_gga(s(X1), X3, X6))
U26_gga(X1, X2, X3, X4, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, X4, wayscC_in_gga(s(X1), X3, X4))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
pluscF_in_gag(0, X1, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
pluscF_in_gag(s(X1), X2, s(X3)) → U31_gag(X1, X2, X3, pluscF_in_gag(X1, X2, X3))
U23_gga(X1, X2, X3, X4, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X4, X6, wayscC_in_gga(X5, .(s(X2), X3), X7))
U27_gga(X1, X2, X3, X4, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
U31_gag(X1, X2, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U24_gga(X1, X2, X3, X4, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, X4, pluscD_in_gga(X6, X7, X4))
wayscC_in_gga(0, X1, s(0)) → wayscC_out_gga(0, X1, s(0))
U25_gga(X1, X2, X3, X4, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
pluscD_in_gga(0, X1, X1) → U28_gga(X1, natcA_in_g(X1))
pluscD_in_gga(s(X1), X2, s(X3)) → U29_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
U29_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
pluscB_in_gag(x1, x2, x3)  =  pluscB_in_gag(x1, x3)
U20_gag(x1, x2)  =  U20_gag(x1, x2)
natcA_in_g(x1)  =  natcA_in_g(x1)
natcA_out_g(x1)  =  natcA_out_g(x1)
U19_g(x1, x2)  =  U19_g(x1, x2)
pluscB_out_gag(x1, x2, x3)  =  pluscB_out_gag(x1, x2, x3)
U21_gag(x1, x2, x3, x4)  =  U21_gag(x1, x3, x4)
pluscE_in_gag(x1, x2, x3)  =  pluscE_in_gag(x1, x3)
U32_gag(x1, x2, x3, x4)  =  U32_gag(x1, x3, x4)
pluscF_in_gag(x1, x2, x3)  =  pluscF_in_gag(x1, x3)
U30_gag(x1, x2)  =  U30_gag(x1, x2)
pluscF_out_gag(x1, x2, x3)  =  pluscF_out_gag(x1, x2, x3)
U31_gag(x1, x2, x3, x4)  =  U31_gag(x1, x3, x4)
pluscE_out_gag(x1, x2, x3)  =  pluscE_out_gag(x1, x2, x3)
wayscC_in_gga(x1, x2, x3)  =  wayscC_in_gga(x1, x2)
wayscC_out_gga(x1, x2, x3)  =  wayscC_out_gga(x1, x2, x3)
[]  =  []
U22_gga(x1, x2, x3, x4, x5)  =  U22_gga(x1, x2, x3, x5)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U25_gga(x1, x2, x3, x4, x5)  =  U25_gga(x1, x2, x3, x5)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
U28_gga(x1, x2)  =  U28_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U29_gga(x1, x2, x3, x4)  =  U29_gga(x1, x2, x4)
WAYSC_IN_GGA(x1, x2, x3)  =  WAYSC_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3, x4, x5)  =  U9_GGA(x1, x2, x3, x5)
U16_GGA(x1, x2, x3, x4, x5)  =  U16_GGA(x1, x2, x3, x5)
U11_GGA(x1, x2, x3, x4, x5, x6)  =  U11_GGA(x1, x2, x3, x5, x6)

We have to consider all (P,R,Pi)-chains

(38) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(39) Obligation:

Q DP problem:
The TRS P consists of the following rules:

WAYSC_IN_GGA(s(X1), .(s(X2), X3)) → U9_GGA(X1, X2, X3, pluscB_in_gag(X2, X1))
U9_GGA(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → WAYSC_IN_GGA(s(X1), X3)
WAYSC_IN_GGA(s(X1), .(s(X2), X3)) → U16_GGA(X1, X2, X3, pluscE_in_gag(X1, X2))
U16_GGA(X1, X2, X3, pluscE_out_gag(X1, X5, X2)) → WAYSC_IN_GGA(s(X1), X3)
U9_GGA(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → U11_GGA(X1, X2, X3, X5, wayscC_in_gga(s(X1), X3))
U11_GGA(X1, X2, X3, X5, wayscC_out_gga(s(X1), X3, X6)) → WAYSC_IN_GGA(X5, .(s(X2), X3))

The TRS R consists of the following rules:

pluscB_in_gag(0, X1) → U20_gag(X1, natcA_in_g(X1))
pluscB_in_gag(s(X1), s(X3)) → U21_gag(X1, X3, pluscB_in_gag(X1, X3))
pluscE_in_gag(X1, X3) → U32_gag(X1, X3, pluscF_in_gag(X1, X3))
wayscC_in_gga(X1, []) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3)) → U22_gga(X1, X2, X3, pluscB_in_gag(X2, X1))
wayscC_in_gga(s(X1), .(s(X2), X3)) → U26_gga(X1, X2, X3, pluscE_in_gag(X1, X2))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
U21_gag(X1, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
U22_gga(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X5, wayscC_in_gga(s(X1), X3))
U26_gga(X1, X2, X3, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, wayscC_in_gga(s(X1), X3))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
pluscF_in_gag(0, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
pluscF_in_gag(s(X1), s(X3)) → U31_gag(X1, X3, pluscF_in_gag(X1, X3))
U23_gga(X1, X2, X3, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X6, wayscC_in_gga(X5, .(s(X2), X3)))
U27_gga(X1, X2, X3, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
U31_gag(X1, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U24_gga(X1, X2, X3, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, pluscD_in_gga(X6, X7))
wayscC_in_gga(0, X1) → wayscC_out_gga(0, X1, s(0))
U25_gga(X1, X2, X3, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
pluscD_in_gga(0, X1) → U28_gga(X1, natcA_in_g(X1))
pluscD_in_gga(s(X1), X2) → U29_gga(X1, X2, pluscD_in_gga(X1, X2))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
U29_gga(X1, X2, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))

The set Q consists of the following terms:

pluscB_in_gag(x0, x1)
pluscE_in_gag(x0, x1)
wayscC_in_gga(x0, x1)
U20_gag(x0, x1)
U21_gag(x0, x1, x2)
U32_gag(x0, x1, x2)
U22_gga(x0, x1, x2, x3)
U26_gga(x0, x1, x2, x3)
natcA_in_g(x0)
pluscF_in_gag(x0, x1)
U23_gga(x0, x1, x2, x3, x4)
U27_gga(x0, x1, x2, x3)
U19_g(x0, x1)
U30_gag(x0, x1)
U31_gag(x0, x1, x2)
U24_gga(x0, x1, x2, x3, x4)
U25_gga(x0, x1, x2, x3)
pluscD_in_gga(x0, x1)
U28_gga(x0, x1)
U29_gga(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(40) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule WAYSC_IN_GGA(s(X1), .(s(X2), X3)) → U16_GGA(X1, X2, X3, pluscE_in_gag(X1, X2)) at position [3] we obtained the following new rules [LPAR04]:

WAYSC_IN_GGA(s(X1), .(s(X2), X3)) → U16_GGA(X1, X2, X3, U32_gag(X1, X2, pluscF_in_gag(X1, X2)))

(41) Obligation:

Q DP problem:
The TRS P consists of the following rules:

WAYSC_IN_GGA(s(X1), .(s(X2), X3)) → U9_GGA(X1, X2, X3, pluscB_in_gag(X2, X1))
U9_GGA(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → WAYSC_IN_GGA(s(X1), X3)
U16_GGA(X1, X2, X3, pluscE_out_gag(X1, X5, X2)) → WAYSC_IN_GGA(s(X1), X3)
U9_GGA(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → U11_GGA(X1, X2, X3, X5, wayscC_in_gga(s(X1), X3))
U11_GGA(X1, X2, X3, X5, wayscC_out_gga(s(X1), X3, X6)) → WAYSC_IN_GGA(X5, .(s(X2), X3))
WAYSC_IN_GGA(s(X1), .(s(X2), X3)) → U16_GGA(X1, X2, X3, U32_gag(X1, X2, pluscF_in_gag(X1, X2)))

The TRS R consists of the following rules:

pluscB_in_gag(0, X1) → U20_gag(X1, natcA_in_g(X1))
pluscB_in_gag(s(X1), s(X3)) → U21_gag(X1, X3, pluscB_in_gag(X1, X3))
pluscE_in_gag(X1, X3) → U32_gag(X1, X3, pluscF_in_gag(X1, X3))
wayscC_in_gga(X1, []) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3)) → U22_gga(X1, X2, X3, pluscB_in_gag(X2, X1))
wayscC_in_gga(s(X1), .(s(X2), X3)) → U26_gga(X1, X2, X3, pluscE_in_gag(X1, X2))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
U21_gag(X1, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
U22_gga(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X5, wayscC_in_gga(s(X1), X3))
U26_gga(X1, X2, X3, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, wayscC_in_gga(s(X1), X3))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
pluscF_in_gag(0, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
pluscF_in_gag(s(X1), s(X3)) → U31_gag(X1, X3, pluscF_in_gag(X1, X3))
U23_gga(X1, X2, X3, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X6, wayscC_in_gga(X5, .(s(X2), X3)))
U27_gga(X1, X2, X3, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
U31_gag(X1, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U24_gga(X1, X2, X3, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, pluscD_in_gga(X6, X7))
wayscC_in_gga(0, X1) → wayscC_out_gga(0, X1, s(0))
U25_gga(X1, X2, X3, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
pluscD_in_gga(0, X1) → U28_gga(X1, natcA_in_g(X1))
pluscD_in_gga(s(X1), X2) → U29_gga(X1, X2, pluscD_in_gga(X1, X2))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
U29_gga(X1, X2, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))

The set Q consists of the following terms:

pluscB_in_gag(x0, x1)
pluscE_in_gag(x0, x1)
wayscC_in_gga(x0, x1)
U20_gag(x0, x1)
U21_gag(x0, x1, x2)
U32_gag(x0, x1, x2)
U22_gga(x0, x1, x2, x3)
U26_gga(x0, x1, x2, x3)
natcA_in_g(x0)
pluscF_in_gag(x0, x1)
U23_gga(x0, x1, x2, x3, x4)
U27_gga(x0, x1, x2, x3)
U19_g(x0, x1)
U30_gag(x0, x1)
U31_gag(x0, x1, x2)
U24_gga(x0, x1, x2, x3, x4)
U25_gga(x0, x1, x2, x3)
pluscD_in_gga(x0, x1)
U28_gga(x0, x1)
U29_gga(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(42) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.


U9_GGA(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → WAYSC_IN_GGA(s(X1), X3)
WAYSC_IN_GGA(s(X1), .(s(X2), X3)) → U16_GGA(X1, X2, X3, U32_gag(X1, X2, pluscF_in_gag(X1, X2)))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + x2   
POL(0) = 0   
POL(U11_GGA(x1, x2, x3, x4, x5)) = 1 + x3   
POL(U16_GGA(x1, x2, x3, x4)) = x3   
POL(U19_g(x1, x2)) = 0   
POL(U20_gag(x1, x2)) = 0   
POL(U21_gag(x1, x2, x3)) = 0   
POL(U22_gga(x1, x2, x3, x4)) = 0   
POL(U23_gga(x1, x2, x3, x4, x5)) = 0   
POL(U24_gga(x1, x2, x3, x4, x5)) = 0   
POL(U25_gga(x1, x2, x3, x4)) = 0   
POL(U26_gga(x1, x2, x3, x4)) = 0   
POL(U27_gga(x1, x2, x3, x4)) = 0   
POL(U28_gga(x1, x2)) = 0   
POL(U29_gga(x1, x2, x3)) = 0   
POL(U30_gag(x1, x2)) = 0   
POL(U31_gag(x1, x2, x3)) = 0   
POL(U32_gag(x1, x2, x3)) = 0   
POL(U9_GGA(x1, x2, x3, x4)) = 1 + x3   
POL(WAYSC_IN_GGA(x1, x2)) = x2   
POL([]) = 0   
POL(natcA_in_g(x1)) = 0   
POL(natcA_out_g(x1)) = 0   
POL(pluscB_in_gag(x1, x2)) = 0   
POL(pluscB_out_gag(x1, x2, x3)) = 0   
POL(pluscD_in_gga(x1, x2)) = 0   
POL(pluscD_out_gga(x1, x2, x3)) = 0   
POL(pluscE_in_gag(x1, x2)) = 1 + x1   
POL(pluscE_out_gag(x1, x2, x3)) = 0   
POL(pluscF_in_gag(x1, x2)) = 0   
POL(pluscF_out_gag(x1, x2, x3)) = 0   
POL(s(x1)) = 0   
POL(wayscC_in_gga(x1, x2)) = 0   
POL(wayscC_out_gga(x1, x2, x3)) = 0   

The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:
none

(43) Obligation:

Q DP problem:
The TRS P consists of the following rules:

WAYSC_IN_GGA(s(X1), .(s(X2), X3)) → U9_GGA(X1, X2, X3, pluscB_in_gag(X2, X1))
U16_GGA(X1, X2, X3, pluscE_out_gag(X1, X5, X2)) → WAYSC_IN_GGA(s(X1), X3)
U9_GGA(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → U11_GGA(X1, X2, X3, X5, wayscC_in_gga(s(X1), X3))
U11_GGA(X1, X2, X3, X5, wayscC_out_gga(s(X1), X3, X6)) → WAYSC_IN_GGA(X5, .(s(X2), X3))

The TRS R consists of the following rules:

pluscB_in_gag(0, X1) → U20_gag(X1, natcA_in_g(X1))
pluscB_in_gag(s(X1), s(X3)) → U21_gag(X1, X3, pluscB_in_gag(X1, X3))
pluscE_in_gag(X1, X3) → U32_gag(X1, X3, pluscF_in_gag(X1, X3))
wayscC_in_gga(X1, []) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3)) → U22_gga(X1, X2, X3, pluscB_in_gag(X2, X1))
wayscC_in_gga(s(X1), .(s(X2), X3)) → U26_gga(X1, X2, X3, pluscE_in_gag(X1, X2))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
U21_gag(X1, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
U22_gga(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X5, wayscC_in_gga(s(X1), X3))
U26_gga(X1, X2, X3, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, wayscC_in_gga(s(X1), X3))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
pluscF_in_gag(0, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
pluscF_in_gag(s(X1), s(X3)) → U31_gag(X1, X3, pluscF_in_gag(X1, X3))
U23_gga(X1, X2, X3, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X6, wayscC_in_gga(X5, .(s(X2), X3)))
U27_gga(X1, X2, X3, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
U31_gag(X1, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U24_gga(X1, X2, X3, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, pluscD_in_gga(X6, X7))
wayscC_in_gga(0, X1) → wayscC_out_gga(0, X1, s(0))
U25_gga(X1, X2, X3, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
pluscD_in_gga(0, X1) → U28_gga(X1, natcA_in_g(X1))
pluscD_in_gga(s(X1), X2) → U29_gga(X1, X2, pluscD_in_gga(X1, X2))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
U29_gga(X1, X2, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))

The set Q consists of the following terms:

pluscB_in_gag(x0, x1)
pluscE_in_gag(x0, x1)
wayscC_in_gga(x0, x1)
U20_gag(x0, x1)
U21_gag(x0, x1, x2)
U32_gag(x0, x1, x2)
U22_gga(x0, x1, x2, x3)
U26_gga(x0, x1, x2, x3)
natcA_in_g(x0)
pluscF_in_gag(x0, x1)
U23_gga(x0, x1, x2, x3, x4)
U27_gga(x0, x1, x2, x3)
U19_g(x0, x1)
U30_gag(x0, x1)
U31_gag(x0, x1, x2)
U24_gga(x0, x1, x2, x3, x4)
U25_gga(x0, x1, x2, x3)
pluscD_in_gga(x0, x1)
U28_gga(x0, x1)
U29_gga(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(44) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(45) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U9_GGA(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → U11_GGA(X1, X2, X3, X5, wayscC_in_gga(s(X1), X3))
U11_GGA(X1, X2, X3, X5, wayscC_out_gga(s(X1), X3, X6)) → WAYSC_IN_GGA(X5, .(s(X2), X3))
WAYSC_IN_GGA(s(X1), .(s(X2), X3)) → U9_GGA(X1, X2, X3, pluscB_in_gag(X2, X1))

The TRS R consists of the following rules:

pluscB_in_gag(0, X1) → U20_gag(X1, natcA_in_g(X1))
pluscB_in_gag(s(X1), s(X3)) → U21_gag(X1, X3, pluscB_in_gag(X1, X3))
pluscE_in_gag(X1, X3) → U32_gag(X1, X3, pluscF_in_gag(X1, X3))
wayscC_in_gga(X1, []) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3)) → U22_gga(X1, X2, X3, pluscB_in_gag(X2, X1))
wayscC_in_gga(s(X1), .(s(X2), X3)) → U26_gga(X1, X2, X3, pluscE_in_gag(X1, X2))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
U21_gag(X1, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
U22_gga(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X5, wayscC_in_gga(s(X1), X3))
U26_gga(X1, X2, X3, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, wayscC_in_gga(s(X1), X3))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
pluscF_in_gag(0, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
pluscF_in_gag(s(X1), s(X3)) → U31_gag(X1, X3, pluscF_in_gag(X1, X3))
U23_gga(X1, X2, X3, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X6, wayscC_in_gga(X5, .(s(X2), X3)))
U27_gga(X1, X2, X3, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
U31_gag(X1, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U24_gga(X1, X2, X3, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, pluscD_in_gga(X6, X7))
wayscC_in_gga(0, X1) → wayscC_out_gga(0, X1, s(0))
U25_gga(X1, X2, X3, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
pluscD_in_gga(0, X1) → U28_gga(X1, natcA_in_g(X1))
pluscD_in_gga(s(X1), X2) → U29_gga(X1, X2, pluscD_in_gga(X1, X2))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
U29_gga(X1, X2, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))

The set Q consists of the following terms:

pluscB_in_gag(x0, x1)
pluscE_in_gag(x0, x1)
wayscC_in_gga(x0, x1)
U20_gag(x0, x1)
U21_gag(x0, x1, x2)
U32_gag(x0, x1, x2)
U22_gga(x0, x1, x2, x3)
U26_gga(x0, x1, x2, x3)
natcA_in_g(x0)
pluscF_in_gag(x0, x1)
U23_gga(x0, x1, x2, x3, x4)
U27_gga(x0, x1, x2, x3)
U19_g(x0, x1)
U30_gag(x0, x1)
U31_gag(x0, x1, x2)
U24_gga(x0, x1, x2, x3, x4)
U25_gga(x0, x1, x2, x3)
pluscD_in_gga(x0, x1)
U28_gga(x0, x1)
U29_gga(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(46) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.


WAYSC_IN_GGA(s(X1), .(s(X2), X3)) → U9_GGA(X1, X2, X3, pluscB_in_gag(X2, X1))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 0   
POL(0) = 0   
POL(U11_GGA(x1, x2, x3, x4, x5)) = x4   
POL(U19_g(x1, x2)) = 0   
POL(U20_gag(x1, x2)) = x1   
POL(U21_gag(x1, x2, x3)) = x3   
POL(U22_gga(x1, x2, x3, x4)) = 0   
POL(U23_gga(x1, x2, x3, x4, x5)) = 0   
POL(U24_gga(x1, x2, x3, x4, x5)) = 0   
POL(U25_gga(x1, x2, x3, x4)) = 0   
POL(U26_gga(x1, x2, x3, x4)) = 0   
POL(U27_gga(x1, x2, x3, x4)) = 0   
POL(U28_gga(x1, x2)) = 0   
POL(U29_gga(x1, x2, x3)) = 0   
POL(U30_gag(x1, x2)) = 0   
POL(U31_gag(x1, x2, x3)) = 0   
POL(U32_gag(x1, x2, x3)) = 0   
POL(U9_GGA(x1, x2, x3, x4)) = x4   
POL(WAYSC_IN_GGA(x1, x2)) = x1   
POL([]) = 0   
POL(natcA_in_g(x1)) = 0   
POL(natcA_out_g(x1)) = 0   
POL(pluscB_in_gag(x1, x2)) = x2   
POL(pluscB_out_gag(x1, x2, x3)) = x2   
POL(pluscD_in_gga(x1, x2)) = 0   
POL(pluscD_out_gga(x1, x2, x3)) = 0   
POL(pluscE_in_gag(x1, x2)) = 0   
POL(pluscE_out_gag(x1, x2, x3)) = 0   
POL(pluscF_in_gag(x1, x2)) = 0   
POL(pluscF_out_gag(x1, x2, x3)) = 0   
POL(s(x1)) = 1 + x1   
POL(wayscC_in_gga(x1, x2)) = 0   
POL(wayscC_out_gga(x1, x2, x3)) = 0   

The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:

pluscB_in_gag(0, X1) → U20_gag(X1, natcA_in_g(X1))
pluscB_in_gag(s(X1), s(X3)) → U21_gag(X1, X3, pluscB_in_gag(X1, X3))
U21_gag(X1, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)

(47) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U9_GGA(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → U11_GGA(X1, X2, X3, X5, wayscC_in_gga(s(X1), X3))
U11_GGA(X1, X2, X3, X5, wayscC_out_gga(s(X1), X3, X6)) → WAYSC_IN_GGA(X5, .(s(X2), X3))

The TRS R consists of the following rules:

pluscB_in_gag(0, X1) → U20_gag(X1, natcA_in_g(X1))
pluscB_in_gag(s(X1), s(X3)) → U21_gag(X1, X3, pluscB_in_gag(X1, X3))
pluscE_in_gag(X1, X3) → U32_gag(X1, X3, pluscF_in_gag(X1, X3))
wayscC_in_gga(X1, []) → wayscC_out_gga(X1, [], 0)
wayscC_in_gga(s(X1), .(s(X2), X3)) → U22_gga(X1, X2, X3, pluscB_in_gag(X2, X1))
wayscC_in_gga(s(X1), .(s(X2), X3)) → U26_gga(X1, X2, X3, pluscE_in_gag(X1, X2))
U20_gag(X1, natcA_out_g(X1)) → pluscB_out_gag(0, X1, X1)
U21_gag(X1, X3, pluscB_out_gag(X1, X2, X3)) → pluscB_out_gag(s(X1), X2, s(X3))
U32_gag(X1, X3, pluscF_out_gag(X1, X2, X3)) → pluscE_out_gag(X1, X2, X3)
U22_gga(X1, X2, X3, pluscB_out_gag(X2, X5, X1)) → U23_gga(X1, X2, X3, X5, wayscC_in_gga(s(X1), X3))
U26_gga(X1, X2, X3, pluscE_out_gag(X1, X5, X2)) → U27_gga(X1, X2, X3, wayscC_in_gga(s(X1), X3))
natcA_in_g(0) → natcA_out_g(0)
natcA_in_g(s(X1)) → U19_g(X1, natcA_in_g(X1))
pluscF_in_gag(0, s(X1)) → U30_gag(X1, natcA_in_g(s(X1)))
pluscF_in_gag(s(X1), s(X3)) → U31_gag(X1, X3, pluscF_in_gag(X1, X3))
U23_gga(X1, X2, X3, X5, wayscC_out_gga(s(X1), X3, X6)) → U24_gga(X1, X2, X3, X6, wayscC_in_gga(X5, .(s(X2), X3)))
U27_gga(X1, X2, X3, wayscC_out_gga(s(X1), X3, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
U19_g(X1, natcA_out_g(X1)) → natcA_out_g(s(X1))
U30_gag(X1, natcA_out_g(s(X1))) → pluscF_out_gag(0, X1, s(X1))
U31_gag(X1, X3, pluscF_out_gag(X1, X2, X3)) → pluscF_out_gag(s(X1), X2, s(X3))
U24_gga(X1, X2, X3, X6, wayscC_out_gga(X5, .(s(X2), X3), X7)) → U25_gga(X1, X2, X3, pluscD_in_gga(X6, X7))
wayscC_in_gga(0, X1) → wayscC_out_gga(0, X1, s(0))
U25_gga(X1, X2, X3, pluscD_out_gga(X6, X7, X4)) → wayscC_out_gga(s(X1), .(s(X2), X3), X4)
pluscD_in_gga(0, X1) → U28_gga(X1, natcA_in_g(X1))
pluscD_in_gga(s(X1), X2) → U29_gga(X1, X2, pluscD_in_gga(X1, X2))
U28_gga(X1, natcA_out_g(X1)) → pluscD_out_gga(0, X1, X1)
U29_gga(X1, X2, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))

The set Q consists of the following terms:

pluscB_in_gag(x0, x1)
pluscE_in_gag(x0, x1)
wayscC_in_gga(x0, x1)
U20_gag(x0, x1)
U21_gag(x0, x1, x2)
U32_gag(x0, x1, x2)
U22_gga(x0, x1, x2, x3)
U26_gga(x0, x1, x2, x3)
natcA_in_g(x0)
pluscF_in_gag(x0, x1)
U23_gga(x0, x1, x2, x3, x4)
U27_gga(x0, x1, x2, x3)
U19_g(x0, x1)
U30_gag(x0, x1)
U31_gag(x0, x1, x2)
U24_gga(x0, x1, x2, x3, x4)
U25_gga(x0, x1, x2, x3)
pluscD_in_gga(x0, x1)
U28_gga(x0, x1)
U29_gga(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(48) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(49) TRUE